var Enterprise=Ext.data.Record.create([//定义企业数据格式
	//mapping字段指的是 从后台送过来的json数据中，此字段的名字，与实体类中的字段保持一致
	{name:'enterprise.id',	           mapping:'ent.id',                    type:'int'
},{  name:'enterprise.name',	       mapping:'ent.name',                  type:'string'//企业名称
},{  name:'etypeId',                   mapping:'ent.enterpriseType.id',     type:'int'
 //	 name:'enterprise.type',           mapping:'type',                  type:'int'//企业种类
},{  name:'etypeName',                 mapping:'ent.enterpriseType.name',  type:'string'
},{  name:'eIndId',                    mapping:'ent.industryType.typeId',   type:'int'
//	 name:'enterprise.industry',       mapping:'industry',              type:'int'//所属行业
},{  name:'eIndName',                  mapping:'ent.industryType.ltypeName',type:'String'
},{	 name:'enterprise.registerAddress',mapping:'ent.registerAddress',       type:'string'//注册地址
},{  name:'enterprise.registerTime',   mapping:'ent.registerTime',          type:'date'//注册时间
},{  name:'enterprise.registerCapital',mapping:'ent.registerCaptial',       type:'int'//注册资金
},{  name:'enterprise.contactName',    mapping:'ent.contactName',           type:'string'//联系人
},{  name:'enterprise.contactMobile',  mapping:'ent.contactMobile',         type:'string'//联系电话
},{  name:'enterprise.email',          mapping:'ent.email',                 type:'string'//电子邮件
},{  name:'enterprise.introduction',   mapping:'ent.introduction',          type:'string'//企业简介
}
	]);

//公司信息列表，Grid的列模型（ColumnModel）的默认实现。该类由列配置组成的数组初始化。 就是配置列要怎么显示
//关于此类 配置的详细方法，看extjs的帮助文档
var cm_enterprise = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer()/*表格前的行号*/, {
	header : '企业名称',
	width : 150,
	sortable : true,//是否可排序
	dataIndex : 'enterprise.name'//数据从哪个字段取来，（从Company里中的name字段）
}, {
	header : '企业种类',
	width : 80,
	sortable : true,//是否可排序
	dataIndex : 'etypeName',//从enterprise的name字段来
	menuDisabled : true
}, {
	header : '所属行业',
	width : 80,
	dataIndex : 'eIndName',
	menuDisabled : true,//是否禁止下出菜单
	resizable : true//是否允许列宽可变，默认true
}, {
	header : '注册地址',
	width : 150,
	dataIndex : 'enterprise.registerAddress',
	resizable : true,
	menuDisabled : true
}, {
	header : '注册时间',
	width : 150,
	dataIndex : 'enterprise.registerTime',
	resizable : true,
	menuDisabled : true
}, {
	header : '注册资本（万元）',
	width : 100,
	dataIndex : 'enterprise.registerCapital',
	resizable : true,
	menuDisabled : true
}, {
	header : '联系人',
	width : 100,
	dataIndex : 'enterprise.contactName',
	menuDisabled : true,
	resizable : true
}, {
	header : '联系电话',
	width : 100,
	dataIndex : 'enterprise.contactMobile',
	resizable : true,
	menuDisabled : true
}, {
	header : '电子邮件',
	width : 150,
	dataIndex : 'enterprise.email'
	//menuDisabled : true
}, {
	header : '企业简介',
	id : 'intro',
	dataIndex : 'enterprise.introduction',
	resizable : true,
	menuDisabled : true
}]);

cm_enterprise.defaultSortable = false;//全局设定cm_company列表为不可排序。

//开始审核按钮，点击弹出审核窗口
var btn_begin_check=new Ext.Button({
	text:'开始复审',
	iconCls:'icon-nav',//此处为按钮前的小图标， 定义在index.css文件中
	handler:function(){
	    var record = grid_not_check.getSelectionModel().getSelected();  //获得选中行数据
		if (record) {
			var enterpriseId=record.get("enterprise.id");
//					Ext.Msg.alert("msg11","companyId="+record.data.companyId);
					Ext.Ajax.request({
						url : 'findPageByEntId.action',// Struts的Action ，通过它联系后台
						//  此处应该通过id查找，具体实现
						params : {
//						applicationId:applicationId
							enterpriseId : enterpriseId  //传过去的参数companyId   
							// params:{action中与enterpriseId对应的字段:要传递的参数enterpriseId}  
							
						},						
						success : function(v) {
//							Ext.Msg.alert("msg11","enterpriseId="+enterpriseId); ceshiyong
//							window_begin_check.show();
//							return " <a href="check/FirstCheck.jsp">"+"</a>"						
						},
						failure : function() {
							Ext.Msg.show({
								title : '错误提示',
								msg : '审核时发生错误!',
								buttons : Ext.Msg.OK,
								icon : Ext.Msg.ERROR
							});
						}
					});//Ext.Ajax.request 结束
				
		
		}//if (record)结束
		else{
			Ext.Msg.alert('提示信息','请先选中要审核的数据!<br>')
		}
	}
});



//搜索 分公司 文本框 
var text_search_company = new Ext.form.TextField({
	name : 'textSearchCompany',
	width : 200,
	emptyText : '多个条件可用空格隔开!',//在文本框中的提示字符
	listeners : {
		'specialkey' : function(field, e) {
			if (e.getKey() == Ext.EventObject.ENTER) {// 判断搜索按钮是否被按下
				searchCompany();
			}
		}
	}
});


var searchCompany = function() {
	// 传参数一定要用这种方式,否则翻页的时候不会根据这些参数查询
	ds_company.baseParams.conditions = text_search_company.getValue();
	ds_company.load({
		params : {   //传的参数分页用
			start : 0,
			limit : 20
		}
	});
}

// 搜索 分公司 按钮
var btn_search_company = new Ext.Button({
	text : '查询',
	iconCls : 'icon-search',
	handler : searchCompany  //使此按钮 挂载到 searchCompany 上
});


//Store类封装了一个客户端的Record对象的缓存， 为诸如GridPanel、ComboBox和DataView等的小部件提供了数据的入口。
//要传输 和读取的数据格式，从后台传来的数据 保存的数据表单 ，通过这里进行缓存和转换 ，这是数据入口函数 ，  这里为json数据格式，我们项目中也用json数据。 详细见帮助文档 Ext.data.Store
var ds_company = new Ext.data.Store({
	//Proxy对象，用于访问数据对象
	proxy : new Ext.data.HttpProxy({   //一个Ext.data.DataProxy所实现的子类，能从Connection（针对某个URL地址）对象读取数据。
		url : 'findAllApplicationSecond.action'//Struts 的Action
	}),
	reader : new Ext.data.JsonReader({   //从传回来的json数据里按此格式读数据
		totalProperty : 'totalProperty',//   该属性是指定记录数的总数（可选的）（比如系统中此表一共有多少条数据符合要求）
		root : 'root'      //   该属性是指定包含所有行对象的数组
//		idProperty: "companyId" //   该属性是指定每一个行对象中究竟哪一个是记录的ID字段（可选的）
	}, Enterprise  //最上面的那个var Company = Ext.data.Record.create
	)
});



// 分公司管理 最外层的panel ，是个可编辑的面板（panel）？
var grid_not_check = new Ext.grid.EditorGridPanel({  
	title : '待初审企业相关信息',
	iconCls : 'icon-grid',  //面板左上的那个小图标，在index.css文件中有定义
	loadMask : {msg : '数据加载中...'},
	region : 'center',
	cm : cm_enterprise,   //cm：colModel的简写方式，渲染Grid所使用的Ext.grid.ColumnModel（必须的），就是配置列要怎么显示。
	ds : ds_company,  //ds是grid的数据源，DataStore的简称
	
	//sm ： selModel的简写方式，选择的模式。AbstractSelectionModel的子类，以为Grid提供选区模型（selection model）。（如不指定则默认为Ext.grid.RowSelectionModel）。
	sm : new Ext.grid.RowSelectionModel({singleSelect : true}), //选中 哪一行数据
	enableColumnMove : false, //True表示列可自由拖动（默认为true）。
	trackMouseOver : false,   //True表示为鼠标移动时高亮显示（默认为true）。
	frame : true,             //True表示为面板的边框外框可自定义的，false表示为边框为 1px的点线（默认为false）。
	autoExpandColumn : 'intro',  //指定某个列的id,grid就会在这一列自动扩展宽度，以填满空白的位置，该id不能为0。
	clicksToEdit : 1,         //要转换单元格为编辑状态所需的鼠标点击数（默认为两下，即双击）。把该项设置为“auto”表示鼠标移至选中单元格上面就开始编辑的状态。
	/*autoLoad:function(){
		ds_company.load({
		params : {   传的参数分页用			start : 0,
			limit : 20	
	},*/
	//面板顶部的工具条。 这里为面板上面的 按钮 ， 增删改 搜索等
	tbar : [btn_begin_check,'-', text_search_company, btn_search_company],
//	items:[tpl3],
	//bbar 面板底部的工具条。此项可以是Ext.Toolbar的实例、工具条的配置对象，或由按钮配置项对象构成的数组，以加入到工具条中。注意，此项属性渲染过后就不可用了，应使用getBottomToolbar的方法代替。
	bbar : new Ext.PagingToolbar({
		pageSize : 20,
		store : ds_company,
		displayInfo : true,
		displayMsg : '第 {0} - {1} 条  共 {2} 条',
		emptyMsg : "没有记录"
	})
});


var p_enterprise = {    // 
	id : 'company-panel',
	border : true,
	layout : 'border',  //可以设定为 fit 自适应
	items : [grid_not_check]
};


//记住了Ext.onReady为ext的入口函数，含有此入口的js 在jsp或者html页面中要最后加载进来（要放在最后）！！
Ext.onReady(function(){

	var vp = new Ext.Viewport(p_enterprise);//此处新建个viewport，让其填充整个可用区域。	
		
    Ext.get('loading').remove();//去除 加载动画图标及文字	
  
}
);

